// 队列是一种先进先出的数据结构，js 中的数组对列（顺序对列）很简单，原因是js中的数组是特殊处理过的

// js 中数组实现队列过于简单，建议使用 java 和 c++ 再写一遍, 在其他语言中数组的长度是固定不变的，这就需要考虑到数组扩容，以及栈满的情况，出栈后位置改变等问题

class Queue {
  size = 0;
  arr = [];

  // 入队
  push(item) {
    if (!item) {
      return false;
    }
    this.arr.push(item);
    this.size++;
  }

  // 出队
  pop() {
    if (this.size === 0) {
      return false;
    }
    this.size--;
    return this.arr.shift();
  }

  getSize () {
    return this.size
  }

  print() {
    console.log("这个的成员有:", this.arr);
    console.log("队列的长度为:", this.size);
  }
}

const queue = new Queue();
queue.push(1);
queue.push(2);
queue.push(3);
queue.print();

queue.pop();
queue.print();

// 出队
queue.pop();
queue.print();
